package data;

/**
 * Statistic adalah pencatat jumlah occurence yang diasosiasikan dengan sebuah
 * objek Term
 * @author Muqtafi Akhmad
 */
public abstract class Statistic {

    /**
     * mengisikan term yang direfer oleh statistic
     * @param term reference ke term
     */
    public void setTerm(Term term) {
        this.term = term;
    }

    /**
     * mendapatkan referensi ke term yang dicatat statistiknya
     * @return 
     */
    public Term getTerm() {
        return term;
    }
    /**
     * Term yang direfer oleh Statistic
     */
    private Term term;

    /**
     * menggabungkan statistic dengan objek statistic yang lain
     * @param anotherStatistic objek statistic lain
     */
    public abstract void merge(Statistic anotherStatistic);

    /**
     * melakukan pre checking pada statistic
     */
    public abstract void preCheck();

    /**
     * melakukan post checking pda statistic
     */
    public abstract void postCheck();
}
